# 使用轻量级的 Alpine Linux 作为基础镜像，并安装 Go 环境
FROM golang:1.18-alpine

# 关闭 cgo
ENV CGO_ENABLED=0

# 设置 GOPROXY 为七牛代理
ENV GOPROXY=https://goproxy.cn,direct

# 设置工作目录为 /app
WORKDIR /app

# 将本地代码复制到容器中的 /app 目录下
COPY . /app

# 在容器中初始化 Go 模块并整理依赖
RUN go mod init autoDeploy && go mod tidy

# 在容器中编译 Go 程序，生成可执行文件
RUN go build -o hello ./main.go

# 声明容器运行时监听的端口
EXPOSE 8080

# 设置容器启动时运行的命令，即运行编译后的程序
CMD ["./hello"]